#include "BulletSoftBody/btDeformableBodySolver.h"
#ifdef __cplusplus
extern "C" {
#endif
btDeformableBodySolver* bullet_NewbtDeformableBodySolver(){
	btDeformableBodySolver* wrap_out = new btDeformableBodySolver();
	return wrap_out;
}

void bullet_btDeformableBodySolver_backupDv(btDeformableBodySolver* c_this){
	c_this->backupDv();
}

void bullet_btDeformableBodySolver_backupVelocity(btDeformableBodySolver* c_this){
	c_this->backupVelocity();
}

bool bullet_btDeformableBodySolver_GetFieldOfM_useProjection(btDeformableBodySolver* c_this){
	return (bool)(c_this->m_useProjection);
}

double bullet_btDeformableBodySolver_kineticEnergy(btDeformableBodySolver* c_this){
	btScalar c_out = c_this->kineticEnergy();
	double wrap_out = (c_out);
	return wrap_out;
}

void bullet_btDeformableBodySolver_predictDeformableMotion(btDeformableBodySolver* c_this,btSoftBody* psb,double dt){
	btSoftBody * c_arg_psb=(btSoftBody *)(void*)(psb);
	btScalar c_arg_dt=dt;
	c_this->predictDeformableMotion(c_arg_psb,c_arg_dt);
}

void bullet_btDeformableBodySolver_revertDv(btDeformableBodySolver* c_this){
	c_this->revertDv();
}

void bullet_btDeformableBodySolver_revertVelocity(btDeformableBodySolver* c_this){
	c_this->revertVelocity();
}

void bullet_btDeformableBodySolver_setImplicit(btDeformableBodySolver* c_this,bool implicit){
	bool c_arg_implicit=implicit;
	c_this->setImplicit(c_arg_implicit);
}

void bullet_btDeformableBodySolver_setLineSearch(btDeformableBodySolver* c_this,bool lineSearch){
	bool c_arg_lineSearch=lineSearch;
	c_this->setLineSearch(c_arg_lineSearch);
}

void bullet_btDeformableBodySolver_updateDv(btDeformableBodySolver* c_this,double scale){
	btScalar c_arg_scale=scale;
	c_this->updateDv(c_arg_scale);
}

void bullet_btDeformableBodySolver_updateEnergy(btDeformableBodySolver* c_this,double scale){
	btScalar c_arg_scale=scale;
	c_this->updateEnergy(c_arg_scale);
}

bool bullet_btDeformableBodySolver_updateNodes(btDeformableBodySolver* c_this){
	bool c_out = c_this->updateNodes();
	bool wrap_out = (c_out);
	return wrap_out;
}

void bullet_btDeformableBodySolver_updateState(btDeformableBodySolver* c_this){
	c_this->updateState();
}

void bullet_btDeformableBodySolver_updateTempPosition(btDeformableBodySolver* c_this){
	c_this->updateTempPosition();
}

void bullet_btDeformableBodySolver_updateVelocity(btDeformableBodySolver* c_this){
	c_this->updateVelocity();
}

#ifdef __cplusplus
}
#endif
